var ApiFactory = require('lib/ApiFactory')
  , format = require('lib/util/format')
  , _ = require('underscore')

module.exports.list = ApiFactory({
  url:function(params){
    return BlueWare.urlPrefix + '/app/' + params.appId + '/urlGroup'
  },
  optionParams:['appId'],
  params:{
    appId:{
      defaultValue:BlueWare.appId
    }
  }
})
var paramsValidators = {
  csrf_token:{
    defaultValue:BlueWare['CSRFTOKEN']
  },
  appId:{
    defaultValue:BlueWare.appId
  },
  name:{
    validate:function(val,model){
      if(!val){
        return '名称不能为空'
      }
      if(val.length>25){
        return '名称不得超过 25 个字符'
      }
    }
  },
  pattern:{
    validate:function(val,model){
      if(!val){
        return '匹配模式不能为空'
      }
      try{
        var result = new RegExp(val)
      }catch(e){
        return '匹配模式必须为有效正则表达式'
      }
    }
  }
}
module.exports.create = ApiFactory({
  url:function(params){
    return BlueWare.urlPrefix + '/app/' + params.appId + '/urlGroup'
  },
  method:'post',
  optionParams:['appId'],
  params:paramsValidators
})
module.exports.update = ApiFactory({
  url:function(params){
    return BlueWare.urlPrefix + '/app/' + params.appId + '/urlGroup/' + params.id
  },
  method:'post',
  optionParams:['appId'],
  params:paramsValidators
})
module.exports.remove = ApiFactory({
  url:function(params){
    return BlueWare.urlPrefix + '/app/' + params.appId + '/urlGroup/' + params.id
  },
  method:'delete',
  optionParams:['appId'],
  params:{
    csrf_token:{
      defaultValue:BlueWare['CSRFTOKEN']
    },
    appId:{
      defaultValue:BlueWare.appId
    }
  }
})
